Active marketing based on client computer configurations

ABSTRACT

A system and method for actively marketing products and services to a user of a client computer such as over a network are disclosed. A product information database comprising product summary files that facilitate determination of presence or absence of products associated with the client computer, a marketing rule knowledge base comprising opportunity rule files governing marketing opportunities, and an opportunity detection object for determination of marketing opportunities are utilized to determine active marketing opportunities and may be downloaded to the client computer from a service provider computer system. The opportunity detection object may comprise a scan engine, an opportunity analysis engine, and a presentation engine which collectively determine and present marketing information to the client computer user. The scan engine compares the client computer against the product information database to determine the configurations of the client computer and to generate a client computer inventory database. The opportunity analysis engine analyzes the client computer inventory database against the marketing rule knowledge base and generates a list of marketing opportunities for the client computer. The presentation engine analyzes the list of marketing opportunities and provides marketing and/or other information regarding marketed products to the user.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to computer systems and computernetworks. More specifically, the present invention relates to a methodand system for marketing products based upon the detection and analysisof software and hardware components or peripherals present on a clientcomputer.

2. Description of Related Art

With the proliferation of Internet-based technology and sales, it hasbecome increasingly important that companies carefully target theirsales and marketing efforts toward appropriate and receptive audiences.Although broadcast print, television, radio, and online banneradvertisements retain some effectiveness in winning new customersthrough exposure to sheer numbers, marketing evolution is leading towardthe provision of product information based upon the user's behavior andpreferences.

Online profiling coupled with advances in database technology andknowledge base techniques enables increasingly targeted communicationswith consumers based both upon the stated preferences of those consumersand their prior purchasing behavior.

Certain methods exist today for marketing products to consumers basedupon the stated preferences of the consumer. By way of example, asoftware manufacturer may elect to collect preferences of consumers andpotential consumers through a survey. Such a survey can be conductedthrough the mail, by phone interview, and/or through a Web site. Forpurposes of clarity in this example, this disclosure will use theexample of a survey posted on a Web site. The software manufacturerplaces a survey on the Web site which is accessed and completed by theconsumer. The software manufacturer generally provides some sort ofincentive for the consumer to complete the survey. Results of the surveymay be collected, stored, aggregated, and analyzed for the purpose ofdetermining the behavior of the consumer. Based on this information, thesoftware manufacturer may choose to send a print advertisement, emailcommunication, or other marketing communication to the consumer basedupon the answers to the questions provided on the survey. The marketingcommunication may be general, based upon grouping the responses intodemographic groups, or may be individualized utilizing a knowledge-baseddetermination of the consumer's preferences based upon that consumer'sresponses.

In another example, a consumer may purchase a new hardware item for acomputer system for which the manufacturer includes a registrationinformation packet. This registration information packet could be in theform of a registration card, requesting from the user of the computersystem such information as name, address, and phone number andcontaining a number of questions designed to give the manufacturerinsight into the consumer's purchasing behavior, profession, income, andso on. Hardware manufacturers may include an electronic version of theregistration packet or may link to the registration packet to theInternet, where the information can be collected immediately into somesort of database storage. When the user returns the registrationinformation to the manufacturer, the manufacturer will then have arecord of the manufacturer's product purchased by the user in additionto any of the supplementary information requested and/or supplied by theconsumer. Based upon the knowledge of what product the user purchased,when the user purchased the item, and any combination of thesupplementary information, the manufacturer can choose to targetmarketing communications to this user. This technique of collectingregistration information is not restricted to hardware manufacturers.Indeed, this collection and use of registration data for marketingpurposes is common in all types of business, including products such assoftware, consumer electronics, appliances, and many other products notrelated to computer systems.

Disadvantageously, in typical existing mechanisms for collecting,storing, and analyzing consumer preferences, the process of generatingnotifications of new and related products can be time-consuming andimprecise. These methods of collecting consumer stated preferences andpast purchasing behavior rely upon many factors, for example: theconsumer responding at all to marketing surveys and/or registrationinformation requests; the consumer accurately answering questions aboutpreviously purchased products and answering other systemconfiguration-based questions; properly interpreting the consumer'sstated preferences or observed behavior into relevant marketing tactics.To deliver hard-copy product notifications such as brochures, consumersare generally grouped into segments to minimize the number of differenttargeted product advertisements generated. If a preferred communicationis email, the manufacturer and/or distributor must customize the emailcommunication and send it after the fact. It would be more desirable forcommunications regarding the new or related product to be based on firm,timely knowledge of a consumer's computing environment and delivered ina timely manner.

A method for scanning the user's computer for the presence of certainsoftware programs for the purpose of providing updates to those softwareprograms is disclosed in the application, “Automatic Updating of DiverseSoftware Products on Multiple Client Computer Systems”, U.S. Ser. No.08/660,488, filed on Jun. 7, 1996 which is incorporated herein byreference in its entirety. A similar method is currently in use at theWeb site http://www.mcafee.com, the contents of which are incorporatedby reference as of the filing date of the present patent application.

FIG. 1 shows a system 100 for updating diverse software products on auser computer system similar to the method of Ser. No. 08/660,488.System 100 comprises a plurality of vendor computer systems 102communicatively coupled via the Internet 106 to a service providercomputer system 106 containing an update information database 108, towhich a user computer 110 containing an update application is alsocoupled.

Service provider computer system 106 comprises, among other elementsdescribed in Ser. No. 08/660,488, an update information database 108.Update information database 108 contains information, such as updatename, version, location, installation instructions and the like, aboutproducts for which updates are available. Client computer 110 comprisesan update application 112 for periodically communicating with theservice provider computer system 106 for checking against the contentsof the client computer 110 products specified in the update informationdatabase 108. If a product specified in the product information database108 is identified on the client computer 110, the client computer isplaced in communication with the relevant vendor computer system 102 todownload or install the software update.

However, it would be desirable to provide a system for marketingsoftware, hardware, and related products to users of computer systemsbased upon the user's current computing environment configuration.

It would be further desirable to provide a system for the marketing ofproducts that are not yet detected on the user's computer, based upon acombination of the absence and/or presence of hardware peripheralsand/or software on or connected to the client computer.

It would be further desirable to provide a system that is relevant andcompelling to the individual user by ensuring that the related productinformation provided is based upon the individual user's computingenvironment configuration.

SUMMARY OF THE INVENTION

A method and system for actively marketing products to a user of aclient computer that is coupled over a network to a service providercomputer system are disclosed. It should be appreciated that the presentinvention can be implemented in numerous ways, including as a process,an apparatus, a system, a device, a method, or a computer readablemedium such as a computer readable storage medium or a computer networkwherein program instructions are sent over optical or electroniccommunication lines. Several inventive embodiments of the presentinvention are described below.

The system generally comprises a product information database, amarketing rule knowledge base, and a opportunity detection object. Theproduct information database comprising product summary files thatfacilitate determination of presence or absence of products associatedwith the client computer, the marketing rule knowledge base comprisingopportunity rule files governing marketing opportunities, and theopportunity detection object for determination of marketingopportunities are utilized to determine active marketing opportunitiesand may be downloaded to the client computer from a service providercomputer system. The opportunity detection object may comprise a scanengine, an opportunity analysis engine, and a presentation engine whichcollectively determine and present marketing information to the clientcomputer user. The scan engine compares the client computer against theproduct information database to determine the configurations of theclient computer and to generate a client computer inventory database.The opportunity analysis engine analyzes the client computer inventorydatabase against the marketing rule knowledge base and generates a listof marketing opportunities for the client computer. The presentationengine analyzes the list of marketing opportunities and providesmarketing and/or other information regarding marketed products to theuser.

In a preferred embodiment, a product information database, a marketingrule knowledge base and an opportunity detection object are downloadedto a client computer from a service provider computer system. Theopportunity detection object is executed to analyze the configuration ofthe client computer and generate a list of marketing opportunities.

According to a preferred embodiment, the opportunity detection objectcomprises a scan engine, an opportunity analysis engine and apresentation engine. These engines collectively serve to scan a currentconfiguration of a client computer, analyze the current configurationfor marketing opportunities, and present marketing information to a userof the client computer.

The scan engine compares the signatures resident on the client computerfor the client hardware and client applications against the productinformation database that may be downloaded to the client computer. Theproduct information database comprises one or a plurality of productsummary files enabling the opportunity analysis engine to detect thepresence of a product on the client computer. If the scan engine detectsthe parameters specified in the product summary file for a product on orconnected to the client computer, the scan engine records informationfor the matched product in an inventory database, which generallycomprised of a list of existing products associated with the clientcomputer.

The opportunity analysis engine generates a list of marketingopportunities for the client computer by analyzing the inventorydatabase against the marketing rule knowledge base. The marketing ruleknowledge base preferably comprises one or a plurality of opportunityrule files indicating the opportunity key for a related product that maybe marketed to the user of the client computer and information about howto present the marketing opportunity to the end user. The opportunityanalysis engine processes the inventory database on the client computerto determine whether the appropriate conditions exist for marketing arelated product to the user of the client computer. When an opportunityis detected, the opportunity analysis engine records information for thematch in a list of marketing opportunities.

The presentation engine analyzes the list of marketing opportunitiesgenerated by the opportunity analysis engine and provides informationregarding related products to the user of the client computer. Relatedproducts may be, by way of example, software applications, hardwareitems such as additional memory, as well as services such as support,training, connectivity service, and the like. The examples presentedherein should in no way be construed as limiting the types of productsthat may be marketed to the user of the client computer. The marketinginformation presented to the user may be a commerce opportunity, anadvertisement displayed to the user, additional information about arelated product, and the like based upon the context of theconfiguration of the user's client computer. Examples of furtherinformation about the related product include, but are not limited to, adownload location, a purchase location, a search at a vendor's searchengine, and the like. Information regarding related products may also bepresented to the user of the client computer via any number of methods,from displaying the information on the user's screen, to a communicationsent separately to the user. It is emphasized that these are examples ofrelated marketing information and presentation methods and should in noway be construed as limiting the scope or context of a preferredembodiment.

Using the method and system provided herein, a service provider is ableto accurately determine the current configuration of a client computerand distribute relevant marketing information about related productsdirectly to a user of the client computer without having to rely solelyupon a user's stated preferences or observed behavior.

These and other features and advantages of the present invention will bepresented in more detail in the following detailed description and theaccompanying figures which illustrate by way of example the principlesof the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be readily understood by the followingdetailed description in conjunction with the accompanying drawings,wherein like reference numerals designate like structural elements, andin which:

FIG. 1 is an illustration of a system for providing diverse softwareproduct updates to a client computer according to the prior art;

FIG. 2 shows a system for marketing products according to a preferredembodiment;

FIGS. 3-1 and 3-2 are flowcharts of the overall method of providingmarketing information in accordance with a preferred embodiment;

FIG. 4 is an illustration of a client computer following the executionof the method of a preferred embodiment;

FIG. 5 is a diagram of a product knowledge base according to a preferredembodiment;

FIG. 6 is an example of a user profile in accordance with a preferredembodiment;

FIG. 7 shows the elements of an inventory database on client computeraccording to a preferred embodiment;

FIG. 8 is an illustration of the process of generating an inventorydatabase according to a preferred embodiment;

FIG. 9 is a flowchart of the process of executing a scan method tocreate the inventory database according to a preferred embodiment;

FIG. 10 is a block diagram of a marketing knowledge base according to apreferred embodiment;

FIG. 11 is an illustration of the process of detecting marketingopportunities according to a preferred embodiment;

FIG. 12 shows a list of marketing opportunities according to thepreferred embodiment; and

FIG. 13 shows a sample display of marketing information to a user basedupon the configuration of a client computer.

DESCRIPTION OF SPECIFIC EMBODIMENTS

A system and method for actively marketing products to a user of aclient computer that is generally coupled over a network to a serviceprovider computer system are disclosed. The following description ispresented to enable any person skilled in the art to make and use theinvention. Descriptions of specific embodiments and applications areprovided only as examples and various modifications will be readilyapparent to those skilled in the art. The general principles definedherein may be applied to other embodiments and applications withoutdeparting from the spirit and scope of the invention. Thus, the presentinvention is to be accorded the widest scope encompassing numerousalternatives, modifications and equivalents consistent with theprinciples and features disclosed herein. For purpose of clarity,details relating to technical material that is known in the technicalfields related to the invention have not been described in detail so asnot to unnecessarily obscure the present invention.

Overview and General Architecture of a System for Active Marketing

FIG. 2 shows the architecture of a system 200 in accordance with apreferred embodiment. In system 200, a plurality of vendor computersystems 202 is communicatively coupled by a network 204, such as theInternet, to a service provider computer system 206 and to a clientcomputer 208.

In accordance with a preferred embodiment, service provider computersystem 206 hosts an active marketing host program 210, a productinformation database 212, a marketing rule knowledge base 214, and anopportunity detection object 216. Opportunity detection object 216further comprises a scan method or engine 218, an opportunity analysismethod or engine 220, and a presentation method or engine 222.

The client computer 208 comprises a plurality of hardware items orperipherals 224 and an addressable memory 226. Resident in theaddressable memory may be a plurality of client applications 228, aplurality of drivers 230, a registry 232, a plurality of configurationfiles 234, and an operating system 236. It is important to note thathardware items or peripherals 224 may be any hardware device, forexample, one that is generally connected to the client computer 208 suchas a hard disk or a monitor, or one that may be temporarily connected tothe client computer 208, such as a Palm Computing® connected organizeror an Iomega® JAZ drive.

The product information database 212 contains information regarding oneor more products for which a marketing opportunity exists. In apreferred embodiment, the product information database 212 is downloadedto the client computer upon execution of the active marketing hostprogram 210. Preferably, the downloading is initiated by the user at theclient computer. The product information database 212 is furtherdescribed below with reference to FIG. 5.

The marketing rule knowledge base 214 contains for each product in theproduct information database 212 information about the marketingopportunities for that product, including a set of conditions thatindicates a match for a marketing opportunity. In a preferredembodiment, the marketing rule knowledge base 214 is downloaded to theclient computer upon execution of the active marketing host program 210.The marketing rule knowledge base 214 is described in further detailwith reference to FIG. 10.

In a preferred embodiment, the opportunity detection object 216 containsthe overall operation of a method for marketing based upon the detectionand analysis of files and/or other configurations, hardware or software,present on the client computer. The opportunity detection object 216 ispreferably downloaded to the client computer 208 upon execution of theactive marketing host program 210 and may be executed locally thereon ina preferred embodiment. Upon download, the opportunity detection object216 is installed into the addressable memory 226 of the client computer208, either in whole or in parts, preferably with a unique identifier.The opportunity detection object 216 may be implemented as Active Xcontrols, Java applets, Perl scripts or any other suitable client-sideapplications. The opportunity detection object 216 may be instantiatedby referring to its unique identifier or the unique identifiers of itscomponent parts through an Application Programming Interface (API). Byway of example but not limitation, a Web browser on the client computer208 may read a Web page and encounter a VBScript directive to run theopportunity detection object 216 using its unique identifier. ThisVBScript directive may be interpreted through the Web browser's API andthe opportunity detection object 216 is executed on the client computer208.

The methods 218, 220, 222 of the opportunity detection object 216collectively serve to scan the current configuration of the clientcomputer 208, analyze the current configuration of the client computer208 for marketing opportunities, and present marketing information to auser of the client computer 208. The methods 218, 220, 222 of theopportunity detection object 216 may be called separately during theexecution of the opportunity detection object 216.

Each method of the opportunity detection object 216 will now bedescribed in more detail. In particular, the scan method 218 analyzesthe client computer 208 to detect the presence of hardware items 224,client applications 228 or other properties of the client computer 208,such as the operating system 236. If the scan method 218 detects theparameters specified in the product information database 212 indicatingthe presence of a product on the client computer 208, the scan method218 optionally records the match. The scan method 218 is described infurther detail with reference to FIG. 8.

The opportunity analysis method 220 analyzes the results of the scanmethod 218 against data in the marketing rule knowledge base 214. Theopportunity analysis method 220 determines whether the appropriateconditions exist for marketing a particular product or type of productto the user of the client computer 208. When an opportunity is detected,the opportunity analysis method 220 optionally records information forthe match.

The presentation method 222 analyzes the results of the opportunityanalysis method 220 and provides information regarding related productsto the user of the client computer 208. It is important to note that thepresentation method 222 may be executed each time the client computer208 connects to the service provider computer system 206 in order toprovide contextual advertising to the user through, for example, theexecution of a client-side control that displays advertising campaignsrelevant to the configuration of the client computer 208 connected tothe service provider computer system 206.

It is important to note that it is not necessary to download the productinformation database 212, the marketing rule knowledge base 214, and/orthe opportunity detection object 216 to the client computer 208. Theseitems could remain on the service provider computer system 206 and runacross the network 204 against the client computer 208. Howeverdownloading these items to the client computer 208 reduces the bandwidthrequirements of executing programs across the network over acommunications device, such as a modem.

Overview and General Method for Active Marketing

FIGS. 3-1 and 3-2 illustrate an overall operation 300 of the method formarketing products and/or services to the user at the client computer,preferably utilizing the system as shown in and described with referenceto FIG. 2. Although the system and method of the present invention aregenerally described in terms of marketing products, it is to beunderstood that services, tickets, and the like may be marketed. At step302, a service provider compiles related product marketing informationonto the service provider computer system in the form of the productinformation database and the marketing information database. Thisinformation may be compiled by experts, either manually orelectronically, preferably while utilizing product presence conditionsthat indicate the presence of a product on the client computer andmarketing opportunity conditions on the client computer that indicate anopportunity to market a product to the user of the client computer.Typically, the conditions are predetermined and stored in the serviceprovider computer system.

At step 304, the client computer connects to a Web site located on theservice provider computer system. In a preferred embodiment, the serviceprovider may request the user to initiate the scan of the clientcomputer by providing a link to initiate the active marketing hostprogram resident on the service provider computer system. In anotherpreferred embodiment, the act of visiting the service provider computersystem would initiate the active marketing host program, which would bea more intrusive way of marketing products and/or services to the userof the client computer.

Optionally, the user of the client computer completes a user profile atstep 306. The implementation of the user profile is flexible. By way ofexample, but not limitation, the user profile may include a number ofpredefined profile options provided by the service provider computersystem from which the user may select. Alternately, the user profile maycomprise a series of questions designed to elicit further statedpreference information from the user of the client computer, such asuser address, phone number, ZIP code, and the like. In another preferredembodiment, the user profile may be a combination of predefined profileand stated preference elements. The user profile or relevant elementsthereof are optionally downloaded to the client computer for use by theopportunity detection object, preferably by the opportunity analysismethod.

In a preferred embodiment, at step 308, the active marketing hostprogram resident on the service provider computer system analyzes theclient computer to determine whether the current version of theopportunity detection object is found on the client computer. If thecurrent version of the opportunity detection object is not found on theclient computer, the version of the opportunity detection objectresident on the service provider computer system may be downloaded tothe client computer, at step 310. Alternately, if the current version ofthe opportunity detection object is found on the client computer, theopportunity detection object is not downloaded. In another aspect of apreferred embodiment (not shown), the user of the client computer may beinformed by means of a message transmitted to the client computerwhether or not the opportunity detection object is current and given theoption of executing the download step 310 if the opportunity detectionobject is not current. An affirmative response would result indownloading the opportunity detection object to the client computer.

It is also important to note that the opportunity detection object maybe downloaded in a single connection between the client computer and theservice provider computer system or may be downloaded in multipleconnections across the network.

Once the opportunity detection object, and preferably the currentversion thereof, is resident on the client computer, the activemarketing host program checks to determine whether the current versionof the product information database is detected on the client computerat step 312. If the current version of the product information databaseis not found on the client computer, the version of the productinformation database resident on the service provider computer system isoptionally downloaded to the client computer at step 314. If the currentversion of the product information database is found on the clientcomputer, the product information database is not downloaded.

Once the product information database, and preferably the currentversion thereof, is found on the client computer, the method progressesto step 316, which begins the analysis of the client computer todetermine which products in the product information database are presenton the client computer. According to a preferred embodiment, theanalysis of the client computer is performed on the client computerusing the opportunity detection object on the client computer. However,an alternate preferred embodiment performs the analysis across thenetwork using procedures stored and executed on the service providercomputer system to analyze the client computer.

At step 318 the scan method is executed to analyze the client computerand create an inventory database (reference numeral 402 as shown and tobe described with reference to FIG. 4). This inventory database isstored on the client computer and is described in further detail belowwith reference to FIG. 7. In a preferred embodiment, the inventorydatabase remains on the client computer and is not transmitted acrossthe network to a receiving computer system in order to preserve theprivacy of the user. However, in another preferred embodiment in whichthe service provider desires to provide user client configurationdirectly to vendors, the inventory database may be transmitted to theservice provider computer system or to one or more vendor computersystems. A preferred embodiment of the scan method is detailed inreference to FIGS. 8 and 9.

At step 320 of a preferred embodiment, the active marketing host programsearches for the presence of the current version of the marketing ruleknowledge base on the client computer. If the current version of themarketing rule knowledge base is not found on the client computer, themarketing rule knowledge base on the service provider computer system isdownloaded to the client computer in step 322. If the current version ofthe marketing rule knowledge base is found on the client computer, themarketing rule knowledge base is not downloaded.

It is also important to note that the marketing rule knowledge base maybe downloaded as a single file containing all marketing opportunities ina single connection between the client computer and the service providercomputer system or it may be downloaded as multiple files based on theproducts contained in the inventory database that may be downloadedseparately using multiple connections across the network.

Each of the analyzing the client computer steps 308, 312, and 318, andthe corresponding downloading steps 310, 314, and 322, need not beexecuted in the order described and may be completed in any suitableorder. For example, each of the analyzing steps 308, 312, and 318 may becompleted and then any resultant downloading steps may then be executed,either in separate steps or in a single combined downloading step.

Further, although not shown, as noted above, each of steps 308, 312, and318 of analyzing the client computer to determine whether the currentversion of the opportunity detection object, the product informationdatabase, and the marketing rule knowledge base, respectively, is foundon the client computer, as well as the corresponding step of downloadingsuch data to the client computer in steps 310, 314, and 322,respectively, may be optional. For example, the user of the clientcomputer may alternatively be informed by means of a message transmittedto the client computer whether or not a particular object or database iscurrent and, if it is not current, the user is given the option ofexecuting the corresponding download step 310, 314, or 322. Anaffirmative response would result in the execution of the download step310, 314, or 322 to the client computer 208.

In another alternative embodiment, the scanning, opportunity analysis,and presentation method or engine of the opportunity detection objectmay each be optionally downloaded. In other words, although it ispreferred that the opportunity detection object be downloaded or notdownloaded to the client computer as a whole, each of the components ofthe opportunity detection object may be individually downloaded or notdownloaded. As an example, the scanning engine can be downloaded whilethe opportunity analysis engine and the presentation engine are notdownloaded to the client computer.

Once the opportunity detection object, the product information database,and the marketing rule knowledge base, and preferably the currentversions thereof, are found on the client computer, the opportunityanalysis method is executed at step 324. In step 324, the inventorydatabase is analyzed against the marketing rule knowledge base to createa list of marketing opportunities (reference numeral 404 as shown and tobe described with reference to FIG. 4). The opportunity analysis methodidentifies a marketing opportunity for a related product by analyzingthe information contained in the marketing knowledge base pertaining tothe presence or absence of one or many products in the inventorydatabase. The opportunity analysis method is described in further detailbelow with reference to FIG. 11.

At step 326, the presentation method executes to present the user of theclient computer with marketing information regarding products recordedin the list of marketing opportunities. The presentation method will bedescribed in fiurther detail with reference to FIG. 13.

The user may be presented with one or many types of informationregarding the marketing opportunity identified based upon theconfiguration of the client computer at step 328 including, but notlimited to, an option to purchase products, advertisements pertaining tothe products, further marketing information about the products, anopportunity to search for further related products, and the like.

Contents of Client Computer after Process 300

FIG. 4 schematically illustrates the contents of the client computer 208at the conclusion of the process 300 of a preferred embodiment asdescribed in FIGS. 3-1 and 3-2. The hardware items 224, clientapplications 226 and other items originally comprising the addressablememory 226 of the client computer 208 preferably remain unaltered on theclient computer 208. The client computer 208 preferably further containsthe product information database 212, the marketing rule knowledge base214, and the opportunity detection object 216, and more preferably thecurrent versions thereof, as downloaded by the active marketing hostprogram to the client computer 208, described above with reference toFIGS. 3-1 and 3-2. Further, the client computer 208 preferably containsthe inventory database 402 as generated by the opportunity detectionobject as well as the list of marketing opportunities 404 as generatedby the presentation method, described above with reference to FIGS. 3-1and 3-2.

In a preferred embodiment, the user profile 400 is completed by the userof the client computer 208. This user profile is optionally downloadedto the client computer 208 and is used by the opportunity analysismethod 220 to further define marketing opportunities on the clientcomputer 208. It is important to note that any of the methods 218, 220,222 of the opportunity detection object 216 may optionally utilize theuser profile 400 to further determine information about the user of theclient computer 208.

The inventory database 402 is created by the scan method 218 (executedat step 318 illustrated in FIG. 3-2) using instructions embedded in thescan method 218 itself and optionally using further information compiledin the product information database 212.

The list of marketing opportunities 404 is generated by the opportunityanalysis method 220 by comparing the conditions in the marketing ruleknowledge base 214 to the inventory database 402 on the client computer208.

Product Information Database 212: Product Summary Files (PSFs)

FIG. 5 illustrates an example of the product information database 212 inaccordance with a preferred embodiment. The products illustrated in FIG.5 are software program A, software program B, software program C,hardware item D, hardware item E, hardware item F, hardware item G, andhardware H.

The product information database 212 comprises product summary orsignature files (PSFs) for each product. Each PSF comprises a detectioncommand 500 and a product signature. The detection command 500 for eachPSF comprises a command sub-component of the scan method that, like theopportunity detection object, may be implemented as Active X controls,Java applets, Perl scripts or any other suitable client-sideapplication. The product signature comprises the response and/or valuesthat indicate the presence of a product on the client computer. It isimportant to note that a PSF may comprise multiple detection commands500 and/or multiple product signatures.

Examples of PSFs are illustrations in FIG. 5. In particular, FIG. 5illustrates a PSF for each of software programs A-C 502, 504, 506 and aPSF for each of hardware items D-H 508, 510, 512, 514, and 538.

Illustrated, also, are examples of product signature types contained inthe PSFs, as described in a preferred embodiment: an executable-typeproduct signature 516, a registry-type product signature 518, aninitialization type product signature 520, a driver-type productsignature 522. It is important to note that other product signaturetypes are possible and that the specific product signature typesdiscussed herein are provided merely for the purposes of illustration.

The executable-type product signature 516 generally comprises executablefile properties that indicate the existence of a product on the clientcomputer 208. Examples of executable file properties illustrated are: anexecutable name 522, an executable file size 524, and an executabletimestamp 526. Other file properties may be included in theexecutable-type product signature 516. To identify the executable-typeproduct signature 516 for software program A, the scan method 218 callsan Active X control specified by the detection command 500, for example,that searches the hard drive of the client computer 208 for theexecutable name PROGRAMA.EXE with a last modified date of 01/01/99 and asize value between 50 KB and 100 KB. If a file is found by the scanmethod 218 on the client computer 208 that meets these criteria, itconstitutes a product match and information for product A is writteninto the inventory database 402.

The registry-type product signature 518 generally comprises a registryentry 528 that indicates the existence of a product on the clientcomputer 208. To identify a registry-type product signature 518 forsoftware program B, the scan method 218 calls an Active X controlspecified by the detection command 500, for example, to scan the Windowsregistry of the client computer 208 for a key that matches the patternspecified in the product signature 518. For example, a sampleregistry-type signature file 518 may match the following registry key:HKEY_LOCAL_MACHINE\SOFTWARE\ACME\PROGRAMB\PRODUCT_ID. If a registryentry is found by the scan method 218 on the client computer 208 thatmeets this criterion, it constitutes a product match and information forproduct B is written into the inventory database 402.

The initialization-type product signature 520 generally comprisesinitialization file properties that indicate the existence of a producton the client computer 208. Examples of initialization file propertiesillustrated are: an initialization file name 530, an initializationparameter name 532, and an initialization parameter value 534. Otherproperties may be included in the initialization-type product signature520. To identify the initialization-type product signature for softwareproduct C, the scan method 218 may call an Active X control specified bythe detection command 500, for example, that searches the addressablememory 226 of the client computer 208 for the initialization parameterfile with the name PROGRAMC.INI. Based on the results of the Active Xcontrol, a second Active X control might read PROGRAMC.INI, searchingfor a parameter name/value pair of“INSTALL_DIRECTORY=C:/WINDOWS/PROGRAMS/PROGRAMC”. If a file containingthis parameter name/value pair is found by the scan method 218 on theclient computer 208, it constitutes a product match and information forproduct C is written into the inventory database 402.

The driver-type product signature 522 generally comprises driver fileproperties that indicate the existence of a product on the clientcomputer 208. Examples of driver file properties illustrated are: adriver file name 536, a driver file size 538, and a driver filetimestamp 540. Other properties may be included in the driver-typeproduct signature 522. To identify the driver-type product signature forhardware item D the scan method 218 may call an Active X controlspecified by the detection command 500, for example, that searches theaddressable memory 226 of the client computer 208 for the driver withthe name HARDWARED_DRIVER.DRV that has a timestamp of 01/01/99 and asize of 10 KB. If a file matching these criteria is found on the clientcomputer 208, it constitutes a product match and information for productD is written into the inventory database 402.

Another type of PSF is the command-type product signature 536illustrated by the PSF for hardware item H 538. The command-type productsignature 536 generally comprises a command response 540 that indicatesthe existence of a product on the client computer 208 and, optionally,may provide additional information about the existing product. Toidentify a command-type product signature 540 for hardware item H, thescan method 218 calls an Active X control, for example, to elicit aresponse from a hardware item on the client computer 208. For example, asample command-type signature file 540 may call an Active X controlspecified by the detection command 500 to determine the number of MBavailable on the hard disk of the client computer 208. The resultingvalue of the detection command 500 is written into the inventorydatabase 402 along with other information for the hardware match.

The PSFs contained in the product information database 212 allow theopportunity detection object 216 to identify products on the clientcomputer 208. Each product in the product information database 212 issummarized by a PSF containing information such as the product name,vendor name, valid platforms. Each PSF optionally also includes the mainproduct signatures and the parameters that indicate which elements ofthe scan method 218 should be called to identify the elements of theproduct signatures.

For example, the PSF for software program A 502 is the first example ofsuch a PSF in the product information database 212. The PSF for softwareprogram A 502 contains information about software program A, includingthe executable-type product signature 516.

Another potential product is illustrated in the PSF for software programB 504. Similar to the PSF for software program A 502, the PSF forsoftware program B 504 contains information about software program B,including the registry-type product signature 518.

Another product is illustrated in a PSF for software program C 506. ThePSF for software program C 506 contains information about softwareprogram C including the initialization-type product signature 520.

Another possible product type—this one a hardware product—is illustratedin the PSF for hardware item D 508. The PSF for hardware D 508 containsinformation about hardware D including the driver-type product signature522. Executable-, registry-, and initialization-type product signatures516, 518, 520 are not limited to use by software programs. For example,the PSFs 510, 512, 514 for hardware items E, F, and G contain theexecutable-type product signature 516, the registry-type productsignature 518, and the initialization-type product signature 520,respectively.

The PSF for a product may use one or more product signatures. In apreferred embodiment, each product has a primary signature supported bysecondary signatures designed to verify that the main signatureaccurately identified the product. Below is a sample of a PSF for asoftware product, Microsoft Word 2000, which uses an executable-typeproduct signature 516 as a primary signature and performs other checksagainst the executable as a secondary validation. The sample PSF alsoutilizes a registry-type product signature 518 as a secondary signature.

SAMPLE PSF FOR MICROSOFT WORD 2000

;Word2000.psf

;modified the product name added the ‘edition’, Last Modified, Arun08/21/99

[Product Details]

Product Name=Microsoft Word 2000 Standard Edition

Vendor Name=Microsoft Corporation

Product Type=APPLICATION

Main Signatures=Sig_(—)1

Verifications=Ver_Check_(—)1, Ver_Check_(—)2

Platforms=W95,W98

[Sig_(—)1]

Signature Type=SIG_FILE

Signature Data=winword.exe

[Ver_Check_(—)1]

Verification Type=REG_CHECK

MajorKey=HKEY_LOCAL_MACHINE

MinorKey=SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

SubKey=*

ValueName=DisplayName

ValueType=STRING

Condition=STRNOCASECOMPARE, “Microsoft Office 2000 Standard”

[Ver_Check_(—)2]

Verification Type=VERSION_CHECK

File Name=EXE_DIR\winword.exe

Condition=VER_RANGE, “9.0.0000”-“10.0.0000”

It is important to note that the function of the PSF need notnecessarily be specified entirely in the product information database212. The format of the product information database 212 described hereis intended to illustrate the functions of identifying a product basedon a set of criteria and may be embodied in any number of ways. Forexample, the scan method 218 may, for some or all signature types,comprise all elements of the PSF needed to detect the presence of aproduct on the client computer 208, including the detection command 500and product signature. In another preferred embodiment, the PSFscontained in the product information database 212 may be used tosupplement information determined by the detection command for eachproduct in the scan method 218.

User Profile 400

FIG. 6 illustrates an embodiment of the user profile 400. In the userprofile illustrated, a plurality of predefined profile options 602 arepresented for selection to the user of the client computer. The purposeof the user profile 400 in a preferred embodiment is the collection offurther information about the user of the client computer 208 that mayoptionally be used to supplement the configuration information minedfrom the client computer 208 through the execution of the scan method218.

As shown, a number of predefined user profile options 602 are providedfor selection by the user. The predefined user profile options mayinclude, for example, a bargain hunter user profile, a business userprofile, a professional user profile, a home user profile, a game playeruser profile, a road warrior user profile.

In another embodiment, the user profile 400 comprises a series ofquestions designed to elicit further stated preference information fromthe user of the client computer 208, such as user address, phone number,ZIP code, and the like. Alternately, the user profile 400 is acombination of predefined profile and stated preference elements. It isimportant to note that the user profile may also contain otherinformation about the client computer, the files thereon, and/or thehardware peripherals associated therewith. The contents of the userprofile 400 are not limited by the examples provided herein.

The user profile 400 or relevant elements thereof are optionallydownloaded to the client computer 208 for use by the opportunitydetection object 216 during the execution of the opportunity analysismethod 220.

Inventory Database 402

FIG. 7 illustrates the inventory database 402, preferably on the clientcomputer 208, resulting from the execution of the scan method 218. Theinventory database 402 comprises a product record which furthercomprises an existing product ID 700, an existing product category 702,and an existing product property 704. Note that the product record inthe inventory database 402 may comprise one or more existing productcategories 702 and/or one or more existing product properties 704.

The inventory database 402 in this illustration comprises a productrecord for software program A 706, a product record for software programC 708, a product record for hardware item D 710, a product record forhardware item F 712, and a product record for hardware item H 714. Shownfor each illustrated product record are the existing product ID 700, theexisting product category, and sample values for the existing productproperties.

The existing product category 702 identifies the matched product in theinventory database 402 as a particular type of product, for example,software, hard disk, CPU, operating system, hardware peripheral, and thelike. Existing product properties 704 include, but are not limited to,an existing product description 716, an existing product vendor 718, anexisting product version 720, an existing product information 722, anexisting product type 724, a measurement of size 726, and a measurementof free units 728.

In a preferred embodiment, the value resulting from the analysis of thecombination of the existing product category 702 and the existingproduct property 704 determines the opportunity found by the opportunityanalysis method 220 and displayed to the user of the client computer208.

Scan Method & Process for Generating Client Computer Inventory Database

FIG. 8 is an illustration of the scan method 218 generating theinventory database 402 according to a preferred embodiment. The scanmethod 218 compares the contents of the client computer 208 comprised ofhardware items 224 and items such as client applications 228, drivers230, the registry 232, configuration files 234, and operating system 238in the addressable memory 226 to the PSF for each product in the productinformation database 212. If the scan method 218 detects the appropriateresponse from the detection command(s) 500 for each PSF, a product matchis identified. The scan method 218 then writes a product record for thematched product to the inventory database 402. The product record foreach product comprises information regarding that product, derived fromthe product information database 212. This information in each productrecord in the inventory database 402 includes, but is not limited to,the existing product ID 700 for the matched product, the existingproduct category 702 for the matched product, and the existing productproperties 704, such as existing product description 716, existingproduct vendor 718, existing product version 720, and the like.

FIG. 9 is a flowchart of illustrating a process 900 of the scan method218 to generate the inventory database 402 by comparing the contents ofthe client computer 208 to the product information database 212. Theprocess commences at step 902 when the scan method 218 is initiated. Atstep 904, the scan method 218 commences the evaluation of the PSFscontained in the product information database 212. At step 906, the scanmethod 218 executes the detection command 500 indicated by the PSF inorder to detect the presence of the product indicated by that PSF. Atstep 908, the scan method 218 evaluates the product signature in the PSFand compares the product signature elements to the contents of theclient computer 208. If it does not find the product signature elementsin the contents of the client computer 208, the scan method 218 returnsto step 904 to evaluate the next PSF in the product information database212. If the product signature elements are found in the contents of theclient computer 208 in step 908, the scan method 218 optionally writesthe existing product ID 700, the existing product category 702, andexisting product properties 704, to the inventory database 402 in step910. At step 912, the scan method 218 determines whether there are morePSFs in the product information database 212 to evaluate. If there aremore PSFs to evaluate, the scan method 218 returns to step 904 toevaluate the next PSF in the product information database 212 repeatingsteps 904, 906, 908, 910, and 912 until a negative response is returnedat step 912 and the scan method 218 terminates. In other words, once allof the PSFs have been evaluated, the scan method 218 ends.

Marketing Rule Knowledge Base 214

FIG. 10 is a block diagram of the marketing rule knowledge base 214 inaccordance with a preferred embodiment. The marketing rule knowledgebase 214 comprises one or more opportunity rule files 1000. Eachopportunity rule file 1000 comprises an opportunity key 1002, a relatedproduct ID 1004, and related product marketing information 1006. Theopportunity key 1002 specifies the conditions under which an opportunitymatch occurs and preferably comprises an existing product ID 700 and amatch value 1008 for that existing product ID 700. The opportunity key1002 may comprise one or many existing product IDs 700 and/or matchvalues 1008.

Related product marketing information 1006 comprises, for example, arelated product description 1010, a related product location 1012, arelated product search string 1014, and a related product advertisementcampaign 1016. Additional related product marketing information 1006 ispossible and may be included in the opportunity rule file 1000. It isimportant to note that there may be a set of related product information1006 for purchasing a related product and a separate set of relatedproduct information 1006 for providing more information to the userabout the related product. It is noted that “related product” refers toa product to be marketed but not necessarily related to one or moreexisting products on the client computer 208. Additionally, by way ofexample, but not limitation, the related product may be a product, suchas a hardware item, a software application, a book pertaining to anexisting or related product, or may be a service, such as support,training, or the like for an existing or related product. A relatedproduct may also be a product that is marketed to the user based upon aninferred profile of the user of the client computer 208 resulting fromthe analysis conducted by the opportunity detection object 216. Forexample, if the configuration detected on the client computer 208 isdetermined to infer that the user of the client computer 208 is a “roadwarrior”, meaning that the user requires both power and mobility incomputing products, the related product marketed to that user may be ahandheld computing device such as a

Palm Computing® Connected Organizer

The rules for determining the existence of a marketing opportunity aredeveloped by the service provider and are compiled in the marketing ruleknowledge base 214. This expertise is compiled manually orelectronically and utilizes data relating to what conditions on theclient computer 208 indicate an opportunity to market a related productto the user of the client computer 208. In addition, related productinformation supplied by vendors of hardware, software, and relatedproducts as part of an agreement between the service provider and thevendor or distributor may also be utilized. Further, related productinformation for products may be independently researched by the serviceprovider for the purposes of providing a useful marketing service forrelated products to the user of the client computer 208.

The information contained in the marketing rule knowledge base 214 isstructured to enable the identification of marketing opportunities basedupon the presence or absence of products in the inventory database 402on the client computer 208. The opportunity key 1002 contains theexisting product ID 700 of at least one product that is evaluatedagainst the inventory database 402. The opportunity key 1002 furthercontains the match value 1008 corresponding to the existing product ID700. The possible match values 1008 are REQUIRED, OPTIONAL, ABSENT, or aspecified or predetermined value of a measurable characteristicresulting from the execution of the detection command 500. Examples ofmeasurable characteristics include processor speed, memory, modem speed.

Each match value 1008 indicates a condition for the presence of theexisting product ID 700 in the inventory database 402. The match value1008 of REQUIRED indicates that for a successful opportunity match tooccur, the corresponding existing product ID 700 must be present in theinventory database 402. The match value 1008 of OPTIONAL indicates thatthe presence of any of the corresponding existing product IDs 700 withan OPTIONAL match value 1008 will constitute a successful match. Thematch value 1008 of ABSENT indicates that for a successful opportunitymatch to occur, the corresponding existing product ID 700 must be absentfrom the inventory database 402. If the match value 1008 is designatedas a specified value resulting from the execution of the detectioncommand 500, the opportunity analysis method 220 matches the value asspecified. Note that the match value 1008 may be an exact value or arange of values. In addition, the match value 1008 may be a relativenumber, such as a percentage of available memory.

In a preferred embodiment, the opportunity key 1002 may contain one ormore existing product IDs 700 each corresponding to a match value 1008.By way of example, the opportunity rule file 1000 for opportunity A hasthe opportunity key 1002 of a single existing product ID 700 with amatch value 1008 of REQUIRED. Thus, when the inventory database 402 isevaluated against the marketing rule knowledge base 214, only if theexisting product ID 700 is found in a product record in the inventorydatabase 402 that matches an existing product ID 700 in the opportunitykey 1002 for an opportunity rule file 1000 in the marketing ruleknowledge base 214 is the opportunity is considered to be matched.

In another example, the opportunity rule file 1000 for opportunity B hasthe opportunity key 1002 comprising multiple existing product IDs 700.One existing product ID 700 has an associated match value 1008 ofREQUIRED. A second existing product ID 700 has an associated match value1008 of ABSENT. Thus when the inventory database 402 is evaluatedagainst the marketing rule knowledge base 214, the first existingproduct ID 700 must be found in the inventory database 402 while thesecond existing product ID 700 must be absent from the inventorydatabase 402 in order for the opportunity to match.

In yet another example, the opportunity rule file 1000 for opportunity Chas the opportunity key 1002 comprising multiple existing product IDs700. One existing product ID 700 has an associated match value 1008 ofREQUIRED. In addition, two existing product IDs 700 have associatedmatch values 1008 of OPTIONAL. Thus, when the inventory database 402 isevaluated against the marketing rule knowledge base 214, the existingproduct ID 700 with the corresponding match value 1008 REQUIRED must bedetected and at least one of the existing product IDs 700 with thecorresponding match value 1008 of OPTIONAL must be detected toconstitute an opportunity match. If the existing product ID 700 with thematch value 1008 of REQUIRED is not present, the opportunity does notmatch, even if one or all of the existing product IDs 700 with matchvalues 1008 of OPTIONAL are detected. Note that a match value 1008 ofOPTIONAL may alternatively indicate that none of the optional existingproduct IDs 700 need be detected, for example, rather than that at leastone of the optional existing product IDs 700 must be detected for anopportunity match to occur.

In another example, the opportunity rule file 1000 for opportunity D hasthe opportunity key 1002 of a single existing product ID 700 with amatch value 1008 of a specific value. Thus, when the inventory database402 is evaluated against the marketing rule knowledge base 214, if thespecified value is detected in the inventory database 402 theopportunity is considered to be matched. As noted previously, thespecified value of the opportunity key 1002 may be an exact value or arange of values, and may be represented relatively, e.g. free memory asa percentage of total memory. To illustrate a case where the specifiedvalue is a range of values, if free space on a hard disk less than orequal to 30% based on the results of the detection command 500, theopportunity is considered to be matched. As another example, the valuespecified may be less than or equal to 300 MHz for the speed of theprocessor.

The related product ID 1004 in the opportunity rule file 1000 is thename of the product or service to be marketed to the user of the clientcomputer 208. An opportunity match between the inventory database 402and the marketing rule knowledge base 214 results in the related productID 1004 and its associated related product marketing information 1006being marketed to the user.

The related product marketing information 1006 optionally comprises therelated product description 1010, related product location 1012, relatedproduct search string 1014, and any applicable related productadvertisement campaign 1016. The related product marketing information1006 specified here is done so by way of example and is not meant tolimit the types of related product marketing information 1006 that canbe included in the opportunity rule file 1000 for any product marketingopportunity.

The related product description 1010 may contain information about therelated product, such as version number, manufacturer, distributor,advertisement campaign information, installation instructions, pricing,additional marketing information and the like.

The related product location 1012 may be a URL location at which therelated product is available for download, a location where additionalmarketing information is available, or a location from which the productmay be purchased (for example, from the vendor computer system 202).

The related product search string 1014 may be used to search externalsystems for the related product. In a preferred embodiment, this relatedsearch string 1014 may include the related product ID 1004 and requiredparameters and format that are sent as search criteria to a searchengine on the vendor computer system 202 for purposes of retrievingpurchase or further marketing information regarding the related product.The location of the external search engine is specified as a componentin the related product marketing information 1006. In another preferredembodiment, the related product search string 1014 is optimized for theexternal search engine to which it will be sent, including the searchengine-specific search key that will result in the match desired by theservice provider.

The related product marketing information 1006 may also contain therelated product advertisement campaign 1016 specifying what informationto provide to the client computer 208 advertising a related product. Ina preferred embodiment, the related product advertisement campaign 1016may be parameters sent to the advertising server on the service providercomputer system 206. The advertising server then interprets theparameters and returns the value to the client computer 208.

All components of the related product marketing information 1006 areoptional. Any combination of the exemplary components presented abovemay be present in any given opportunity rule file 1000 for a marketingopportunity in the marketing rule knowledge base 214.

In a preferred embodiment, some or all components of the related productmarketing information 1006 may be stored as parameters on the clientcomputer 208. These parameters may optionally be sent to the serviceprovider computer system 206 upon which may reside a marketinginformation server. The marketing information server in a preferredembodiment processes the parameters received from the client computer208 and delivers to the client computer 208 relevant marketinginformation based upon those parameters. For example, the relatedproduct location 1012 for a matched opportunity may be stored as one ormore parameters in the client computer 208. When the presentation method222 displays information to the user of the client computer 208, theparameter of the related product location 1012 is transmitted to themarketing information server, which returns a set of instructions to theclient computer Web browser for the display of the appropriate URLand/or graphic for the commerce opportunity and/or advertisement.Advantageously, this preferred embodiment may allow the service providerto track opportunities passed through to vendor computer systems 202 andmay provide increased flexibility in maintaining the most up-to-dateproduct marketing information.

Where they are explicitly included in an opportunity rule file 1000, thelinks to URLs contained in the related product information 1006 arepreferably maintained by the service provider. A method for ensuringthat links to URLs contained in the related product information 1006 arevalid is detailed in the application, “Automatic Updating of DiverseSoftware Products on Multiple Client Computer Systems”, U.S. Ser. No.08/660,488, filed with the USPTO on Jun. 7, 1996 which is incorporatedherein by reference in its entirety.

Marketing Opportunity Analysis Method 202 and List of MarketingOpportunities 404 Generated Thereby

FIG. 11 is an illustration of the opportunity analysis method 220 thatidentifies marketing opportunity matches on the client computer 208. Theopportunity analysis method 220 compares the marketing rule knowledgebase 214 and, optionally, the user profile 400, with the inventorydatabase 402 that resulted from the execution of the scan method 218.The results of the opportunity analysis method 220 are written to thelist of marketing opportunities 404. The list of marketing opportunities404 comprises multiple opportunity match records and is described belowin detail with reference to FIG. 12.

The opportunity analysis method 220 evaluates the opportunity rulefile(s) 1000 in the marketing rule knowledge base 214 to determinewhether the conditions present on the client computer 208 match theopportunity keys 1008 in each opportunity rule file 1000. For eachsuccessful match of the opportunity key 1008 of an opportunity rule file1000 in the marketing rule knowledge base 214, the opportunity analysismethod 220 preferably records the following information specified by theopportunity analysis method 220 into the list of marketing opportunities404: the existing product ID 700, the related product ID 1004, andrelated product marketing information 1006.

Optionally, the opportunity analysis method 220 additionally evaluatesthe user profile 400 along with the marketing rule knowledge base 214against the inventory database 402. When the user profile 400 isconsidered by the opportunity analysis method 220, the preferences inthe user profile 400 that are predefined, stated, and/or inferred areevaluated to further define the marketing information to be presented tothe user of the client computer 208. By way of example, but notlimitation, if the opportunity analysis method 220 identifies theopportunity match for marketing an Internet Service Provider (ISP)through the detection in the inventory database 402 of the correctopportunity key 1002 for the opportunity rule file 1000 in the marketingrule knowledge base 214, the opportunity analysis method 220 may utilizea stated preference in the user profile 400 such as the user's ZIP codeto market a more specific opportunity to the user. Opportunities furtherspecified by information in the user profile 400 need not be based uponexplicitly stated preferences but may be based upon information inferredfrom any stated preferences given by the user in the user profile 400.

FIG. 12 illustrates the list of marketing opportunities 404 generated asa result of the opportunity analysis method 220. In the exampleillustrated, four opportunity matches resulted from the execution of theopportunity analysis method 220: a record for opportunity match A 1202,a record for opportunity match B 1204, a record for opportunity match C1206, and a record for opportunity match D 1208. In this illustration,the information recorded in each opportunity match is the existingproduct ID 700, related product ID 1004, and related product marketinginformation 1006. In this example, the related product marketinginformation 1006 further comprises the related product description 1010,the related product description 1012, the related product search string1014, and the related product advertisement campaign 1016. Otherinformation provided in the inventory database 404, such as existingproduct category 702, existing product properties 704, and the like isoptionally recorded for each opportunity in the list of marketinginformation 404.

The information about the matched opportunities contained in eachopportunity match record is derived from the marketing rule knowledgebase 214 and the inventory database 402. It is important to note thatany information contained in either the marketing rule knowledge base214 or the inventory database 402 may be utilized by the list ofmarketing opportunities 404. The items detailed above are for thepurposes of illustration only and should not be construed as limitingthe potential contents of the list of marketing opportunities 404.

Presentation of Marketing Information to the User

FIG. 13 illustrates an example of a screen of marketing informationpresented to the user of the client computer 208 as a result of theexecution of the opportunity detection object 216. An active marketingresults page 1300 is presented to the user of the client computer 208.The active marketing results page 1300 optionally displays the followinginformation to the user based upon the results of the presentationmethod 222: an existing product name 1302, an existing product vendorname 1304, existing product information 1306, a marketing link topurchase related products 1308, a marketing link to learn more aboutrelated products 1310, and an advertisement 1312 for related products.

The presentation method 222 of the opportunity detection object 216analyzes the list of marketing opportunities 404 on the client computer208 to determine what information to present to the user and how topresent it. As illustrated by FIG. 13, the existing product name 1302displayed to the user is based upon the existing product ID 700 in andis derived from the list of marketing opportunities 404. This existingproduct name may be the name of a specific product such as “NeoMagicMagicGraph 128XD” or a generic item.

The existing product vendor name 1304 may be displayed by thepresentation method 222 and is also derived from the list of marketingopportunities 404. In another preferred embodiment, the presentationmethod 222 may read directly from the marketing information database214, product information database 212, user profile 400 and the like toretrieve any information it requires to display marketing information tothe user.

Other existing product information 1306 may be provided to the user as aresult of the execution of the presentation method 222. Other existingproduct information may be, for example, the existing product version720, the measurement of size 726, and/or the measurement of free units728. To illustrate the display of other existing product information1306, FIG. 13 shows the measurement of size 726 and the measurement freeunits 728 for the hard disk on the client computer under the Hard Diskscategory (“You Have: 6GB total disk space (31% free)”).

The marketing link to purchase related products 1308 and the marketinglink to learn more about related products 1310 are produced by thepresentation method 222 based on information in the list of marketingopportunities 404. For every opportunity match record in the list ofmarketing opportunities 404, the presentation method 222 evaluates therelated product information 1006 contained in the opportunity matchrecord. Based on this related product information 1006, the presentationmethod 222 executes to provide the relevant marketing information to theuser of the client computer 208. For example, if the presentation method222 analyzing an opportunity match record detects a related productdescription 1010 in the related product information 1006, then themarketing link to learn more about related products 1310 may link to apage comprising the related product ID 1004 and the related productdescription 1010. In another example, if the presentation method 222analyzing an opportunity match record detects a related product location1012 in the related product information 1006, the marketing link topurchase related products 1308 may connect the user to the vendorcomputer system 202 to purchase the software. In another illustration,if the presentation method 222 analyzing an opportunity match recorddetects a related product search string 1014 in related productinformation 1006 designated as purchase information, the marketing linkto purchase related products 1308 may connect the user to the vendorcomputer system 202 with the value of the related product search string1014 passed as a parameter to a search engine on the vendor computersystem 202.

Another example of marketing information displayed to the user of theclient computer is the advertisement 1312 for related products. In apreferred embodiment, the advertisement 1312 displayed to the user isbased upon the related product advertisement campaign 1016 in the listof matched opportunities 404. Optionally, the advertisement 1312displays during a subsequent session between the client computer 208 andthe service provider computer system 206. Information about the relatedproduct advertisement campaign 1016 specific to the client computer 208may be accessed by the presentation method 222 resident on the clientcomputer 208 without the need for executing the entire opportunitydetection object 216 during the subsequent sessions.

In summary, the present invention provides a method for accuratelycreating the inventory database 402 of software and hardware productsand components or peripherals on the client computer 208 across thenetwork 204 (with or without explicit acknowledgement by the user of theclient computer 208) and marketing related products to the user. Usingthe method described as part of the present invention, it is possible toidentify hardware and software products associated with the clientcomputer 208 and identify marketing opportunities that are triggered bythe absence or presence of one or more products and/or a specific valueresulting from the execution of a detection command 500 on the clientcomputer 208. The related products marketed to the user by this methodare relevant to the user because they are based upon currentconfiguration of the client computer 208 combined, optionally, with thecontents of the user profile 400 completed by the user.

By compiling and maintaining instructions about marketing opportunitiesfrom of the marketing rule knowledge base 214 that is analyzed by theopportunity detection object 216, it is possible to provide the userwith real, actionable marketing information. As is evident, themarketing information presented to the user may include any combinationof commerce opportunities, advertisements displayed to the user,additional information about related products, and the like. By way ofexample, the user is provided with a simple, accessible way to purchaseor learn more about a related product directly relevant to the user'sclient computer configuration in a number of different ways, such aspresenting links to purchase related products 1308 (commerceopportunities), marketing links to learn more about related products1310 (additional information), advertisements 1312 for related products(advertisement display) based on the contents of the inventory database,and the like.

A system memory and a hard drive of a computer system, whether theservice provider computer system or the client computer, can be utilizedto store and retrieve software programs incorporating computer code thatimplements aspects of the invention, data for use with the invention,and the like. Exemplary computer readable storage media include CD-ROM,floppy disk, tape, flash memory, system memory, hard drive, as well as adata signal embodied in a carrier wave (e.g., in a network such as theInternet).

While the preferred embodiments of the present invention are describedand illustrated herein, it will be appreciated that they are merelyillustrative and that modifications can be made to these embodimentswithout departing from the spirit and scope of the invention. Thus, theinvention is intended to be defined only in terms of the followingclaims.

What is claimed is:
 1. A system for marketing to a user of a clientcomputer, comprising: a scanning engine adapted to utilize a productinformation database to detect products associated with the clientcomputer and adapted to generate a client computer inventory from saiddetected products; an opportunity analysis engine adapted to identifymarketing opportunities to the user by comparing the client computerinventory to a marketing rule knowledge base; and a presentation engineadapted to present identified marketing opportunities on the clientcomputer upon detection of at least one marketing opportunity, wherein:said marketing rule knowledge base includes a first marketing rule filehaving a marketing opportunity and at least one opportunity key forspecifying a condition of a corresponding product in the client computerinventory for said marketing opportunity, said marketing rule fileincludes at least one opportunity key having a value selected fromabsent, optional, and value of a measurable characteristic of thecorresponding product.
 2. The system for marketing to a user of a clientcomputer according to claim 1, further comprising means forcommunication with the client computer via a network.
 3. A computerproduct for marketing to a user of a client computer, comprising:computer code that detects products associated with the client computerutilizing a product information database; computer code that generates aclient computer inventory from said detected products; computer codethat detects marketing opportunities to the user by comparing the clientcomputer inventory to a marketing rule knowledge base; computer codethat, upon detection of at least one marketing opportunity, presents theat least one marketing opportunity to the user of the client computer,wherein said marketing rule knowledge base includes a first marketingrule file having a marketing opportunity and at least one opportunitykey for specifying a condition of a corresponding product in the clientcomputer inventory for said marketing opportunity, said marketing rulefile includes at least one opportunity key having a value selected fromabsent, optional, and value of a measurable characteristic of thecorresponding product; and a computer readable medium that stores saidcomputer codes.
 4. A method for marketing to a user of a clientcomputer, comprising: detecting products associated with the clientcomputer according to a scanning engine utilizing a product informationdatabase; generating a client computer inventory from productsassociated with the client computer as determined by the scanningengine; detecting marketing opportunities to the user according to anopportunity analysis engine by comparing the client computer inventoryto a marketing rule knowledge base; and upon detection of at least onemarketing opportunity, presenting the at least one marketing opportunityto the user of the client computer according to a presentation engine,wherein said marketing rule knowledge base includes a first marketingrule file having a marketing opportunity and an opportunity key forspecifying a condition of a corresponding product in the client computerinventory for said marketing opportunity, said first marketing rule fileincludes at least one opportunity key having a value selected fromabsent, optional, and value of a measurable characteristic of thecorresponding product.
 5. The method for marketing to the user of theclient computer according to claim 4, further comprising downloading atleast one of the product information database, the marketing ruleknowledge base, the scanning engine, the opportunity analysis engine,and the presentation engine to the client computer over a network from aservice provider computer.
 6. The method for marketing to the user ofthe client computer according to claim 5, wherein said downloading isinitiated at the client computer.
 7. The method for marketing to theuser of the client computer according to claim 5, further comprisingconnecting the client computer to the service provider computer via thenetwork.
 8. The method for marketing to the user of the client computeraccording to claim 4, further comprising downloading an updated versionof at least one of the product information database, the marketing ruleknowledge base, the scanning engine, the opportunity analysis engine,and the presentation engine to the client computer over a network from aservice provider computer, wherein said updated version is utilized inat least one corresponding one of said determining, generating,detecting, and presenting.
 9. The method for marketing to the user ofthe client computer according to claim 4, further comprising compiling auser profile based upon information provided by the user.
 10. The methodfor marketing to the user of the client computer according to claim 9,wherein said detecting marketing opportunities to the user according tothe opportunity analysis engine further includes comparing the userprofile to the marketing rule knowledge base.
 11. The method formarketing to the user of the client computer according to claim 9,further comprising providing a plurality of predefined user profileoptions for selection by the user, said plurality of predefined userprofile options selected from the group consisting of a bargain hunteruser profile, a business user profile, a professional user profile, ahome user profile, a game player user profile, a road warrior userprofile.
 12. The method for marketing to the user of the client computeraccording to claim 4, wherein said marketing rule knowledge base furthercomprises additional marketing rule files, each additional marketingrule file comprising a marketing opportunity and at least oneopportunity key corresponding to a product in the client computerinventory and having a value selected from the group consisting ofabsent, required, optional, and value of a measurable characteristic ofthe corresponding product in the client computer inventory.
 13. Themethod for marketing to the user of the client computer according toclaim 4, further comprising compiling at least one of the productinformation database and marketing rule knowledge base.
 14. The methodfor marketing to the user of the client computer according to claim 4,wherein said detecting products associated with the client computerincludes scanning the client computer and comparing results of saidscanning against the product information database according to thescanning engine, wherein said scanning the client computer includesscanning for at least one of software files, operating system, hardwareperipherals, and hardware components including CPU, hard disk drive, andmemory.
 15. The method for marketing to the user of the client computeraccording to claim 4, wherein said product information database includesat least one product summary file, each product summary file including adetection command and a product signature comprising a value forindicating association of the product with the client computer.
 16. Themethod for marketing to the user of the client computer according toclaim 15, wherein said detecting products associated with the clientcomputer includes, for each product summary file in said productinformation database, executing the detection command to detect presenceof product signature on the client computer, and, upon detection of theproduct signature on the client computer, writing a product record ofthe detected product associated with the client computer to said clientcomputer inventory.
 17. The method for marketing to the user of theclient computer according to claim 16, wherein each product recordcomprises at least one of an existing product identification, anexisting product category, and an existing product property of thedetected product associated with the client computer.
 18. The method formarketing to the user of the client computer according to claim 15,wherein said product summary file is selected from the group consistingof a software product summary file and a hardware product summary file.19. The method for marketing to the user of the client computeraccording to claim 15, wherein said product signature of the productsummary file is selected from the group consisting of an executable-typeproduct signature, a registry-type product signature, aninitialization-type product signature, a driver-type product signature,and a command-type product signature.
 20. The method for marketing tothe user of the client computer according to claim 4, wherein saidpresenting the marketing opportunity to the user of the client computeraccording to the presentation engine upon detection of at least one of aservice commerce marketing opportunity, a product commerce marketingopportunity, a service advertisement marketing opportunity, and aproduct advertisement marketing opportunity.
 21. The method formarketing to the user of the client computer according to claim 4,wherein said presenting the marketing opportunity to the user of theclient computer according to the presentation engine upon detection ofat least one marketing opportunity includes presenting at least onecommerce marketing opportunity, said at least one commerce marketingopportunity is associated with at least one product in said clientcomputer inventory.
 22. The method for marketing to the user of theclient computer according to claim 21, wherein said presenting thecommerce marketing opportunity includes presenting at least one of aproduct name, a product category, and a product description of said atleast one product in said client computer inventory.